﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DexComanda.Models;


namespace DexComanda
{
    public partial class frmFinalizarVenda : Form
    {
        protected ConexaoMysql conMysql;
        public decimal valorTotal;

        public frmFinalizarVenda()
        {
            InitializeComponent();
            txtCodigoCliente.Text = "1";
            txtNomeCliente.Text = "Consumidor Final";
            cbxFormaPagamento.SelectedValue = 0;
            conMysql = new ConexaoMysql();

            
        }
        private void txtNomeCliente_KeyDown(object sender, KeyEventArgs e)
        {
            DataSet listaClientes = conMysql.ConsultarTodosClientesPorNome(txtNomeCliente.Text);
            gridCliente.DataSource = listaClientes.Tables[0];
            
            if (e.KeyCode == Keys.Down)
            {
                gridCliente.Focus();
            }
            if (e.KeyCode == Keys.Up)
            {
                txtValorPago.Focus();
            }
            if (e.KeyCode==Keys.Enter)
            {
                Reset();
                this.Close();
            }
        }

        private void gridCliente_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {

                try
                {
                    int NumeroLinha = gridCliente.Rows.GetFirstRow(DataGridViewElementStates.Selected);
                    DataGridViewRow row = gridCliente.Rows[NumeroLinha];
                    txtNomeCliente.Text = row.Cells["nome"].Value.ToString();
                    txtCodigoCliente.Text = row.Cells["codigo"].Value.ToString();

                }
                catch (Exception)
                {


                }

            }

            if (e.KeyCode == Keys.Up && gridCliente.Rows.GetFirstRow(DataGridViewElementStates.Selected) == 0)
            {
                txtNomeCliente.Focus();
            }

        }


        private void txtValorPago_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                try
                {

               
                if (txtValorPago.Text != "")
                {
                    decimal vlrPago = decimal.Parse(txtValorPago.Text);
                    decimal vlrTotal = decimal.Parse(lblValorTotal.Text.Replace("R$", ""));
                    decimal vlrTroco = vlrPago - vlrTotal;
                    if (vlrTroco >= 0)
                    {
                        lblTroco.Text = "R$ " + vlrTroco.ToString();
                        btnFinalizar.Visible = true;
                        txtNomeCliente.Focus();
                    }
                    else
                    {
                        MessageBox.Show("Valor pago não pode ser menor que o valor da venda");
                        txtValorPago.Focus();

                    }


                }
                }
                catch (Exception)
                {

                    MessageBox.Show("Você digitou um Caractere inválido.");
                }

                
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {

        }

        private void btnFinalizar_Click(object sender, EventArgs e)
        {

            /*if (txtNomeCliente.Text=="")
            {
                MessageBox.Show("Por favor escolha um cliente.");
            }
            else
            {
               }*/

            Reset();
            this.Close();


        }

        private void frmFinalizarVenda_KeyDown(object sender, KeyEventArgs e)
        {
            if (btnFinalizar.Visible == true)
            {
                if (e.KeyCode == Keys.F2 || e.KeyCode == Keys.Escape)
                {
                    /*
                   if (txtNomeCliente.Text == "")
                    {
                        MessageBox.Show("Por favor escolha um cliente.");
                    }
                    else
                    {
                   
                    }
                     */
                    Reset();
                    this.Close();
                }
            }

        }

        private void cbxFormaPagamento_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode==Keys.Enter)
            {
                txtValorPago.Focus();
            }
        }

        private void frmFinalizarVenda_Load(object sender, EventArgs e)
        {

        }

        public void Reset()
        {
            txtValorPago.Text = "";
            lblTroco.Text="R$0,00";
            gridCliente.DataSource = null;
            cbxFormaPagamento.SelectedValue = 0;
            cbxFormaPagamento.Focus();
            btnFinalizar.Visible = false;
            txtCodigoCliente.Text = "1";
            txtNomeCliente.Text = "Consumidor Final";
           

        }

        private void SelecaoDuoClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int NumeroLinha = gridCliente.Rows.GetFirstRow(DataGridViewElementStates.Selected);
                DataGridViewRow row = gridCliente.Rows[NumeroLinha];
                txtNomeCliente.Text = row.Cells["nome"].Value.ToString();
                txtCodigoCliente.Text = row.Cells["codigo"].Value.ToString();

            }
            catch (Exception)
            {


            }
        }
    }
}
